// all全部都成功才成功(多个请求并发，我希望拿到所有人成功的结果) 如果其中有一个失败了，那就会失败
const fs = require("fs").promises;
const path = require("path");


// then串行（回调来实现）.then().then()   并发 （靠循环来实现 + 计数器）

Promise.allSettled([fs.readFile(path.resolve(__dirname,'./note.md'),'utf8'),fs.readFile(path.resolve(__dirname,'./note.md'),'utf8'),1,2,3]).then((data=>{
    console.log('allSetteld 一直走成功',data);

    // ....
})).catch(err=>{
    console.log(err)

     // ....
})



// 用于控制某个promise的状态 （超时处理）

// function withAbort(oldPromise){
//     let abort = null;
//     const newPromise = new Promise((resolve,reject)=>{
//         abort = reject
//     })
//     let genPromise = Promise.race([newPromise,oldPromise])
//      genPromise.abort = abort
//      return genPromise
// }


// const p = withAbort(new Promise((resolve,reject)=>{
//     setTimeout(()=>{
//         resolve("成功")
//     },5000)
// }))

// // Promise.race([以前的promise，"加一个promise（成功和失败）"])
// setTimeout(()=>{
//     // p.abort('超时了')
// },3000)
// p.then(data=>{
//     console.log('s',data)
// },err=>{
//     console.log('e',err)
// })

// Promise.race([fs.readFile(path.resolve(__dirname,'./note.md'),'utf8'),fs.readFile(path.resolve(__dirname,'./note.md'),'utf8'),1,2,3]).then(data=>{
//     console.log(data)
// }).catch(err=>{
//     console.log(err)
// })







// allSetteled 内部提供
